package com.linkgie.galaxyframework.security;

/**
 * 可认证账号；
 * 
 * @author Atom
 *
 */
public interface AuthenticatedAccount extends AccountIdentity {

	/**
	 * 用于登录认证的用户名；
	 * 
	 * @return
	 */
	String getUsername();
	
	/**
	 * 账户是否启用；
	 * 
	 * @return true 表示账户已启用；
	 *         <p>
	 *         false 表示账户已禁用；
	 */
	boolean isEnabled();

	/**
	 * 账户是否已被锁定；
	 * 
	 * @return true 表示账户已被锁定；
	 *         <p>
	 *         false 表示账户未被锁定；
	 */
	boolean isAccountLocked();

	/**
	 * 账户是否已过期；
	 * <p>
	 * 
	 * 过期的账户无法登录；
	 * 
	 * @return true 表示已过期；
	 *         <p>
	 *         false 表示未过期；
	 */
	boolean isAccountExpired();

	/**
	 * 密码是否已过期；
	 * 
	 * @return true 表示密码已过期；
	 *         <p>
	 *         false 表示密码未过期；
	 */
	boolean isPasswordExpired();
}
